package com.shigen.demo.annation.valid;

import java.util.HashSet;
import java.util.Set;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
 * ListValueConstraintValidator
 *
 * @author shigenfu
 * @date 2022/6/16 9:55 下午
 */
public class ListValueConstraintValidator implements ConstraintValidator<ListValue, Integer> {

  private Set<Integer> set = new HashSet<>();

  /**
   * 初始化方法
   */
  @Override
  public void initialize(ListValue constraintAnnotation) {
    int[] values = constraintAnnotation.values();
    for (int value : values) {
      set.add(value);
    }
  }

  /**
   * 判断是否校验成功
   */
  @Override
  public boolean isValid(Integer integer, ConstraintValidatorContext constraintValidatorContext) {
    return set.contains(integer);
  }
}
